package com.tgy.core.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.tgy.page.PageQuery;
import com.tgy.page.TableDataInfo;
import com.tgy.pojo.SysAdminRole;
import com.tgy.result.LayuiTableResult;

import java.util.Collection;
import java.util.List;

/**
 * 系统用户角色关联表;(sys_admin_role)表服务接口
 * @author : http://www.chiner.pro
 * @date : 2022-6-20
 */
public interface SysAdminRoleService extends IService<SysAdminRole> {
    /**
     * 查询系统用户角色关联信息
     *
     * @param id 系统用户角色关联信息主键
     * @return 系统用户角色关联信息
     */
    SysAdminRole queryById(String id);

    /**
     * 查询系统用户角色关联信息列表
     *
     * @param bo 系统用户角色关联信息
     * @return 系统用户角色关联信息集合
     */
    TableDataInfo<SysAdminRole> queryPageList(SysAdminRole bo, PageQuery pageQuery);

    /**
     * layui分页查询
     */
    LayuiTableResult queryLayuiPageList(SysAdminRole bo, PageQuery pageQuery);

    /**
     * 查询系统用户角色关联信息列表
     *
     * @param bo 系统用户角色关联信息
     * @return 系统用户角色关联信息集合
     */
    List<SysAdminRole> queryList(SysAdminRole bo);

    /**
     * 修改系统用户角色关联信息
     *
     * @param bo 系统用户角色关联信息
     * @return 结果
     */
    Boolean insertByBo(SysAdminRole bo);

    /**
     * 修改系统用户角色关联信息
     *
     * @param bo 系统用户角色关联信息
     * @return 结果
     */
    Boolean updateByBo(SysAdminRole bo);

    /**
     * 根据ID删除
     * @param id id
     */
    Boolean deleteById(String id);

    /**
     * 校验并批量删除系统用户角色关联信息信息
     *
     * @param ids     需要删除的系统用户角色关联信息主键集合
     * @param isValid 是否校验,true-删除前校验,false-不校验
     * @return 结果
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    /**
     * 根据用户ID删除数据
     */
    int deleteByAid(List<String> aids);

    /**
     * 根据角色ID删除数据
     */
    int deleteByRid(List<String> rids);

    int insertByList(List<SysAdminRole> adminRoles);
}